Speculative Identification of Merge Conflicts and Non-Conflicts
نویسندگان
چکیده
Most software is built by multiple people, and a version control system integrates evolving individual contributions into a whole. Every engineer makes decisions about when to incorporate other team members’ changes, and when to share changes with other team members. Sometimes, an engineer performs these tasks too early, and in other cases performs them too late. In this paper we address several questions to determine if there are enough situations in practice where an individual could benefit from explicit knowledge about the relationship between their view of the software with respect to other views of the software. In particular, we speculate (in principle) at each moment in time about whether unrecognized conflicts with teammates exist and whether there are unnoticed opportunities for straightforward merging among teammates. To determine whether there are sufficient potential opportunities — needed to justify the design, implementation, and evaluation of a speculative tool — we analyze existing source code repositories. Across several open-source projects, we compute and report results including how long conflicts persist before they are resolved (a mean of 9.8 days) and how long opportunities for a non-conflicting textual merge persist (a mean of 11 days). In addition, for one of the projects, we compare the persistence of textual conflicts vs. compilation conflicts vs. testing conflicts. Our data show that there is ample opportunity to benefit from speculative version control, justifying a tool design and implementation effort.
منابع مشابه
Enabling Speculative Parallelization via Merge Semantics in STMs
STM (Software Transactional Memory) systems can be used to speculatively parallelize irregular applications such as those based on graphs and trees. While the transactional paradigm is suitable for such speculative parallelization, STMs do not deal with the semantics of speculation. In this paper we introduce merge semantics for speculations. STMs optimistically execute code and monitor the exe...
متن کاملQuantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study
This paper presents an exploratory study that analyzes the complexity to integrate existing merge conflicts of a cloned large-scale web system. The study is supported by an existing tool that focuses on the identification of merge conflicts that can arise during the integration of cloned systems. The approach addresses the merge conflict analysis through the extraction and comparison of the iss...
متن کاملAn Empirical Examination Of Code Smells and Their Impact on Collaborative Work
Background: Merge conflicts are a common occurrence in software development. Researchers have shown the negative impact of conflicts on the resulting code quality and the development workflow. Thus far, no one has investigated the effect of bad design (code smells) on merge conflicts. Aims: We posit that entities that exhibit certain types of code smells are more likely to be involved in a merg...
متن کاملConflicts Identification among Non-functional Requirements using Matrix Maps
Conflicts identification among non-functional requirements is often identified intuitively which impairs conflict analysis practices. This paper proposes a new model to identify conflicts among non-functional requirements. The proposed model uses the matrix mechanism to identify the quality based conflicts among non-functional requirements. The potential conflicts are identified through the map...
متن کاملHandling of Mutual Conflicts in Distributed Databases Using Timestamps
In distributed database systems, it is desirable to allow read and write accesses to occur independently on replicated copies of database files in case of network partitions to increase availability. However, the system should detect mutual conflicts among the copies of the database files when sites from different partitions merge to form one partition. We present a timestampbased algorithm for...
متن کامل